package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.settlement.system.converter.DateFormatConvert;
import com.settlement.system.converter.SyncBillDetaillStatusConvert;
import com.settlement.system.converter.ViewDeliveryTypeConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 巨量千川财务流水
 * @author lwb
 * @since 2023-12-26
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblJlqcFinanceDetail extends BaseModel implements Serializable {


    /**
     * 巨量千川ID
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "巨量千川ID")
    @ApiModelProperty(value = "巨量千川ID")
    private String jlqcId;

    /**
     * 抖音页面店铺ID
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "抖音页面店铺ID")
    @ApiModelProperty(value = "抖音页面店铺ID")
    private String dyWebShopId;

    /**
     * 零售店铺编码
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "零售店铺编码")
    @ApiModelProperty(value = "零售店铺编码")
    private String shopNo;

    /**
     * 原始账单ID
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "原始账单ID")
    @ApiModelProperty(value = "原始账单ID")
    private String originBillId;

    /**
     * 日期
     */
    @ColumnWidth(22)
    @ApiModelProperty(value = "日期")
    @ExcelProperty(value = "日期",converter = DateFormatConvert.class)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date billDate;

    /**
     * 消返红包消耗
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "消返红包消耗")
    @ApiModelProperty(value = "消返红包消耗")
    private BigDecimal deductionCost;

    /**
     * 余额总消耗
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "余额总消耗")
    @ApiModelProperty(value = "余额总消耗")
    private BigDecimal cost;

    /**
     * 非赠款消耗
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "非赠款消耗")
    @ApiModelProperty(value = "非赠款消耗")
    private BigDecimal cashCost;

    /**
     * 赠款消耗
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "赠款消耗")
    @ApiModelProperty(value = "赠款消耗")
    private BigDecimal grantCost;

    /**
     * 总存入
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "总存入")
    @ApiModelProperty(value = "总存入")
    private BigDecimal income;

    /**
     * 总转入
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "总转入")
    @ApiModelProperty(value = "总转入")
    private BigDecimal transferIn;

    /**
     * 总转出
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "总转出")
    @ApiModelProperty(value = "总转出")
    private BigDecimal transferOut;

    /**
     * 非赠款余额
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "非赠款余额")
    @ApiModelProperty(value = "非赠款余额")
    private BigDecimal cashBalance;

    /**
     * 赠款余额
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "赠款余额")
    @ApiModelProperty(value = "赠款余额")
    private BigDecimal grantBalance;

    /**
     * 总余额
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "总余额")
    @ApiModelProperty(value = "总余额")
    private BigDecimal totalBalance;

    /**
     * 共享余额消耗
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "共享余额消耗")
    @ApiModelProperty(value = "共享余额消耗")
    private BigDecimal shareCost;

    /**
     * 随心推消耗
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "随心推消耗")
    @ApiModelProperty(value = "随心推消耗")
    private BigDecimal qcAwemeCost;

    /**
     * 随心推非赠款消耗
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "随心推非赠款消耗")
    @ApiModelProperty(value = "随心推非赠款消耗")
    private BigDecimal qcAwemeCashCost;

    /**
     * 随心推赠款消耗
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "随心推赠款消耗")
    @ApiModelProperty(value = "随心推赠款消耗")
    private BigDecimal qcAwemeGrantCost;

    /**
     * 资金池类型:ALL 全部
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "资金池类型",converter = ViewDeliveryTypeConvert.class)
    @ApiModelProperty(value = "资金池类型")
    private String viewDeliveryType;

    /**
     * 生成统一账单状态 0:待生成 1:已生成
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "生成统一账单状态",converter = SyncBillDetaillStatusConvert.class)
    @ApiModelProperty(value = "生成统一账单状态 0:待生成 1:已生成")
    private String syncBillDetaillStatus;

    /**
     * insert时的批次号
     */
    @ApiModelProperty(value = "insert时的批次号")
    private BigDecimal batchInNumber;
}
